<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Import XML Sitra</title>
</head>
<body>
<?php
//
// Script d'import de fichiers XML Sitra dans une base MySQL
// Version : 0.1
// Auteur : Thomas Collet
// Date : 07/03/2009
// PHP 5.2.6 - extension php_xsl activée
// MySQL 5.0.51b
// Utilisation d'une transformation XSL, création d'un fichier tabulé pour import via LOAD DATA INFILE
// Testé sur plateforme Windows donc path d'accès aux fichiers plus compliqués que sur Unix
//

// On définit le chemin d'accès aux fichiers XML Sitra
$path_to_xml_sitra_files = 'C:\www\lab.rhonetourisme\sitra\import-sitra-php5-loaddatainfile\xml';

// On définit le fichier XML Sitra simplifié temporaire
$tmp_simplified_sitra_file = $path_to_xml_sitra_files . '\tmp_simplified_sitra_file.txt';

$tmp_content_txt = '';

// On définit le fichier XML Sitra simplifié temporaire pour MySQL 
$tmp_simplified_sitra_file_for_mysql = 'C:\\\\www\\\lab.rhonetourisme\\\\sitra\\\import-sitra-php5-loaddatainfile\\\xml\\\\tmp_simplified_sitra_file.txt';

// On se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// On sélectionne la base
mysql_select_db('sitra',$db); 

// On liste les fichiers XML Sitra à importer et on les place dans un tableau
if ($handle = opendir($path_to_xml_sitra_files)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != ".svn") {
			$xml_sitra_files[]=$file;
        }
    }
    closedir($handle);
}

// On boucle sur chaque fichier XML Sitra
foreach($xml_sitra_files as $xml_sitra_file){
	
	// Nouvelle instance
	$xslt = new XSLTProcessor();
	
	// Chargement du fichier XML
	$xml = new domDocument();
	$xml -> load('xml/' . $xml_sitra_file);
	
	// Chargement du fichier XSL
	$xsl = new domDocument();
	$xsl -> load('xslt/sitraxmlsimplifier2.xsl');
	
	// Import de la feuille XSL
	$xslt -> importStylesheet($xsl);
	
	$tmp_content_txt = $tmp_content_txt . $xslt -> transformToXml($xml);

}
	// On stocke le résultat de la transformation XSL dans un fichier temporaire tmp_simplified_sitra_file.txt	
	file_put_contents($tmp_simplified_sitra_file, $tmp_content_txt);
	
	// On importe tout ça dans la BDD
	$query = "LOAD DATA INFILE '" . $tmp_simplified_sitra_file_for_mysql . "' INTO TABLE objets FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES STARTING BY '' TERMINATED BY '\n' (identifiant_sitra  , type_obt , titre , intro , visuel_principal , adresse_ligne1 , adresse_ligne2 , adresse_ligne3 , adresse_ligne4 , code_postal , commune , code_insee , cedex , latitude , longitude , altitude , telephone , fax , email , site_internet , proprietaire_sitra , derniere_maj_sitra)";
	mysql_query($query) or die (mysql_error());
	echo('Import MySQL effectué');
	
// On supprime le fichier temporaire
unlink($tmp_simplified_sitra_file);

// On ferme la connexion à mysql
mysql_close(); 

?>
</body>
</html>